
package com.hlkj.pay.infrastructure.model.merchant;

import com.baomidou.mybatisplus.annotation.TableName;
import com.hlkj.framework.mybatis.core.dataobject.BaseDO;

import com.hlkj.pay.enums.MerchantEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

/**
 * 商户进件表
 * 
 * @TableName t_merchant_access_info
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName("t_merchant_access_info")
public class MerchantAccessInfoDO extends BaseDO {
    
    /**
     * 控制人类型 是否同法人 1 是 0 否
     */
    private Integer controllerType;
    @Schema(description ="联系人类型 是否同法人 1 是 0 否")
    private Integer contactType;
    /**
     * 商户类型，1=个人，2=企业
     * @see MerchantEnum.MERCHANT_TYPE
     */
    private Integer type;
    /**
     * 商户名称
     */
    private String name;
    /**
     * 商户名称
     */
    private String shortName;


    /**
     * 商户商户号
     */
    private String sn;

    /**
     * 商户类别 1 商户 2 代理商户
     */
    private Integer snType;

    /**
     * 所属平台，1=运营平台，2=机构，3=商户
     */
    private Integer sysType;

    /**
     * 服务商编码
     */
    @Schema(description = "服务商编码")
    private String providerCode;

    /**
     * 通道编码
     */
    @Schema(description = "通道编码")
    private String channelCode;

    /**
     * 审核状态，审核状态，0：草稿 1：鉴权中
     * 2：已提交，等待平台审核，3：系统自动审核中，4：系统审核通过渠道审核中，5：平台审核中，6：待签约，7：签约中，8：待配置，9：配置中，10：审核完成，11：审核驳回
     * 
     * @see MerchantEnum.ACCESS_STATUS
     */
    private Integer status;
    /**
     * 审核状态，审核状态，0：草稿 1：鉴权中
     * 2：已提交，等待平台审核，3：系统自动审核中，4：系统审核通过渠道审核中，5：平台审核中，6：待签约，7：签约中，8：待配置，9：配置中，10：审核完成，11：审核驳回
     *
     * @see MerchantEnum.ACCESS_STATUS
     */
    private Integer lastStatus;

    /**
     * 渠道单号
     */
    private String applyNo;

    /**
     * 渠道侧商户号
     */
    private String subMchId;

    /**
     * 渠道拓展参数A
     */
    private String extendA;

    /**
     * 渠道拓展参数B
     */
    private String extendB;

    /**
     * @see MerchantEnum.CHANNEL_CONFIG_STATUS
     */
    private Integer auditStatus;

    /**
     * 备注
     */
    private String remark;
    /**
     * requestId
     */
    private String requestId;
    /**
     * merchantChannelId
     */
    private String merchantChannelId;
    /**
     * 进件单号
     */
    private String mchOrderNo;
    /**
     * 异步通知地址
     */
    private String notifyUrl;
    /**
     * 通道编码
     */
    @Schema(description ="appId")
    private String appId;
    /**
     * 签名方式 RSA2,MD5
     */
    @Schema(description = "签名方式 RSA2,MD5")
    private String signType;
    /**
     * 签名方式 RSA2,MD5
     */
    @Schema(description = "商户入网类型，0=收单子商户，1=分账子商户，默认为收单子商户")
    private Integer merchantAccessType;

    /**
     * 数据来源，1=手动录入，2=复制，3=开放接口
     * @see MerchantEnum.SOURCE_FROM
     */
    private Integer sourceFrom;

}
